This invention relates generally to a device or apparatus for interconnecting electrical buses which connects various components of a computer system, and in particular to a device for interconnecting two Universal Serial Buses (USBs) together which includes power management features.
A typical personal computer system has a main central processing unit (CPU) enclosed within a housing and one or more peripheral devices, such as a keyboard, a mouse, a monitor, a modem or a printer connected to the housing and electrically connected to the CPU by a unique connector and an electrical bus, respectively. These different connectors and electrical buses include serial buses, parallel buses and RS-232 ports. Typically, each of these different buses had different signaling requirements and different connectors to the housing. For example, a parallel bus has a certain physical connector and communicates bits of data in parallel (i.e., a predetermined number of bits at the same time). In contrast, a serial bus may have a different physical connector and may transmit bits of data in a serial manner (i.e., one bit at a time).
In order to connect a keyboard, printer, monitor, modem or mouse to the personal computer, it was often necessary to use several different types of local electrical buses and associated ports, such as a serial port for a modem, a parallel port for the printer, a keyboard port and a mouse port. This leads to unnecessary complexity since each peripheral device may use a different bus. Therefore, a new universal serial bus (USB) was created to provide a standard interconnect for peripherals, and to facilitate connecting peripheral devices to the computer. The USB not only replaces the multiple cables and physical connectors typically needed with a single standardized connection system, it provides a standard electrical specification. The USB also permits peripheral devices to be connected and/or disconnected from the bus while the computer system is powered up which eliminates the need, with conventional buses, to power down and "re-boot" every time that a peripheral device is connected or disconnected. The USB further permits a peripheral connected to the USB to be detected and then a configuration process for the device, known as enumeration, may be commenced.
The USB standard also provides that a USB bus may be put into a suspended state if certain events occur. In particular, if there is no activity on the USB by the peripheral device for 3 milliseconds (ms), the peripheral device and the USB interprets this inactivity as a command to go into the suspended state. In the suspended state, according to the USB specification, the peripheral device connected to the USB may only draw a maximum current of 500 .mu.A from the USB. The peripheral device may be awakened out of the suspended state when any activity on the USB occurs.
One of the challenges in producing a bus powered USB compatible peripheral devices is meeting the stringent 500 .mu.A maximum suspend current limitation imposed on each bus powered USB peripheral device. In particular, in order to be recognized on the USB, the peripheral device must pull-up its D+ line to a local 3.3 volts supply through a 1.5 K.OMEGA. resistor which is known as a "1.5 k pull-up". Because the D+ line must also be pulled down to ground through a 15 k.OMEGA. resistor, the local 1.5 k pull-up circuit causes a current draw of 200 .mu.A. Therefore, while in the suspended state, a peripheral device may only draw a maximum current of 300 .mu.A (the 500 .mu.A total minus the 1.5 k pull-up current).
The problem is that if two USBs are connected to a device and both USBs go into a suspended state at the same time, the current being drawn by the device would probably exceed the maximum suspended current limitation and would therefore not be USB compliant. Therefore, it is desirable to produce a device which enables two systems connected together through USB ports to not exceed the maximum suspended current limitation for each port. The USB-to-USB device may have a separate USB interface for each USB bus connected to it. The USB-to-USB device may be used to connect two computers together using their USB ports so that the computers may communicate with each other over the USB which is intended for the connection of peripherals. The problem of producing a USB-to-USB device is that this USB-to-USB device must still meet the stringent 500 .mu.A maximum suspend current limitation for each "host" interface. Therefore, despite a 1.5 k pull-up within each interface for each USB (together drawing 400 .mu.A), the USB-to-USB device must still meet the stringent suspend current limitations.
Thus, it is desirable to provide a device for interconnecting USBs which does not exceed the maximum suspend current limitation even when one or both USB are in the suspended state, and it is to this end that the present invention is directed.